package cn.anxingongyou.anxin.entity;

import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;

@Document(indexName = "anxin_work",type = "work")
public class Work implements Serializable {
    /**
     * 主键
     */
    @Id
    @Field(type = FieldType.Long,store = true)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 用户主键
     */
    @Column(name = "user_pid")
    @Field(type = FieldType.Long,store = true)
    private Long userPid;

    /**
     * 企业信息主键
     */
    @Column(name = "user_eid")
    @Field(type = FieldType.Long,store = true)
    private Long userEid;

    /**
     * 个人信息主键
     */
    @Column(name = "user_wid")
    @Field(type = FieldType.Long,store = true)
    private Long userWid;

    /**
     * logo图片
     */
    @Column(name = "logo_pic")
    @Field(type = FieldType.Text,store = true)
    private String logoPic;

    /**
     * 雇主名称
     */
    @Column(name = "employee_name")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String employeeName;

    /**
     * 是否是企业（0:否 1:是）
     */
    @Column(name = "is_enterprise")
    @Field(type = FieldType.Integer,store = true)
    private Integer isEnterprise;

    /**
     * 工作名称
     */
    @Column(name = "work_name")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workName;

    /**
     * 工作类型
     */
    @Column(name = "work_type")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workType;

    /**
     * 工作开始日期
     */
    @Column(name = "work_start_date")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workStartDate;

    /**
     * 工作开始时间
     */
    @Column(name = "work_start_time")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workStartTime;

    /**
     * 工作开始时间戳
     */
    @Column(name = "work_start_datestamp")
    @Field(type = FieldType.Date,store = true)
    private Date workStartDatestamp;

    /**
     * 工作结束日期
     */
    @Column(name = "work_end_date")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workEndDate;

    /**
     * 工作结束时间
     */
    @Column(name = "work_end_time")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workEndTime;

    /**
     * 工作结束时间戳
     */
    @Column(name = "work_end_datestamp")
    @Field(type = FieldType.Date,store = true)
    private Date workEndDatestamp;

    /**
     * 经度(7位小数精度1cm)
     */
    @Field(type = FieldType.Float,store = true)
    private BigDecimal longitude;

    /**
     * 纬度
     */
    @Field(type = FieldType.Float,store = true)
    private BigDecimal latitude;

    /**
     * 结算方式（0:日结 1:周结 2:月结 3:完工结）
     */
    @Field(type = FieldType.Integer,store = true)
    private Integer settlement;

    /**
     * 薪资水平
     */
    @Field(type = FieldType.Float,store = true)
    private Float salary;

    /**
     * 薪资类型（0:元/小时 1:元/天 2:元/件）
     */
    @Column(name = "salary_type")
    @Field(type = FieldType.Integer,store = true)
    private Integer salaryType;

    /**
     * 工作强度
     */
    @Column(name = "work_strength")
    @Field(type = FieldType.Float,store = true)
    private Float workStrength;

    /**
     * 手续费
     */
    @Field(type = FieldType.Integer,store = true)
    private Integer poundage;

    /**
     * 招聘人数
     */
    @Column(name = "work_number")
    @Field(type = FieldType.Integer,store = true)
    private Integer workNumber;

    /**
     * 性别要求（0:不限 1:男 2:女）
     */
    @Column(name = "work_sex")
    @Field(type = FieldType.Integer,store = true)
    private Integer workSex;

    /**
     * 年龄要求
     */
    @Column(name = "work_age")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workAge;

    /**
     * 学历要求
     */
    @Column(name = "work_education")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workEducation;

    /**
     * 工作经验
     */
    @Column(name = "work_experience")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workExperience;

    /**
     * 工作图片
     */
    @Column(name = "work_img")
    @Field(type = FieldType.Text,store = true)
    private String workImg;

    /**
     * 联系人
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String contacts;

    /**
     * 手机号码
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String phone;

    /**
     * 创建时间
     */
    private Date created;

    /**
     * 更新时间
     */
    private Date updated;

    /**
     * 工作地点json
     */
    @Column(name = "work_place")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workPlace;

    /**
     * 工作详情
     */
    @Column(name = "work_detail")
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String workDetail;

    /**
     * 工作福利
     */
    @Field(type = FieldType.Text,store = true, analyzer = "ik_smart")
    private String label;

    private static final long serialVersionUID = 1L;

    /**
     * 获取主键
     *
     * @return id - 主键
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置主键
     *
     * @param id 主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取用户主键
     *
     * @return user_pid - 用户主键
     */
    public Long getUserPid() {
        return userPid;
    }

    /**
     * 设置用户主键
     *
     * @param userPid 用户主键
     */
    public void setUserPid(Long userPid) {
        this.userPid = userPid;
    }

    /**
     * 获取企业信息主键
     *
     * @return user_eid - 企业信息主键
     */
    public Long getUserEid() {
        return userEid;
    }

    /**
     * 设置企业信息主键
     *
     * @param userEid 企业信息主键
     */
    public void setUserEid(Long userEid) {
        this.userEid = userEid;
    }

    /**
     * 获取个人信息主键
     *
     * @return user_wid - 个人信息主键
     */
    public Long getUserWid() {
        return userWid;
    }

    /**
     * 设置个人信息主键
     *
     * @param userWid 个人信息主键
     */
    public void setUserWid(Long userWid) {
        this.userWid = userWid;
    }

    /**
     * 获取logo图片
     *
     * @return logo_pic - logo图片
     */
    public String getLogoPic() {
        return logoPic;
    }

    /**
     * 设置logo图片
     *
     * @param logoPic logo图片
     */
    public void setLogoPic(String logoPic) {
        this.logoPic = logoPic;
    }

    /**
     * 获取雇主名称
     *
     * @return employee_name - 雇主名称
     */
    public String getEmployeeName() {
        return employeeName;
    }

    /**
     * 设置雇主名称
     *
     * @param employeeName 雇主名称
     */
    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    /**
     * 获取是否是企业（0:否 1:是）
     *
     * @return is_enterprise - 是否是企业（0:否 1:是）
     */
    public Integer getIsEnterprise() {
        return isEnterprise;
    }

    /**
     * 设置是否是企业（0:否 1:是）
     *
     * @param isEnterprise 是否是企业（0:否 1:是）
     */
    public void setIsEnterprise(Integer isEnterprise) {
        this.isEnterprise = isEnterprise;
    }

    /**
     * 获取工作名称
     *
     * @return work_name - 工作名称
     */
    public String getWorkName() {
        return workName;
    }

    /**
     * 设置工作名称
     *
     * @param workName 工作名称
     */
    public void setWorkName(String workName) {
        this.workName = workName;
    }

    /**
     * 获取工作类型
     *
     * @return work_type - 工作类型
     */
    public String getWorkType() {
        return workType;
    }

    /**
     * 设置工作类型
     *
     * @param workType 工作类型
     */
    public void setWorkType(String workType) {
        this.workType = workType;
    }

    /**
     * 获取工作开始日期
     *
     * @return work_start_date - 工作开始日期
     */
    public String getWorkStartDate() {
        return workStartDate;
    }

    /**
     * 设置工作开始日期
     *
     * @param workStartDate 工作开始日期
     */
    public void setWorkStartDate(String workStartDate) {
        this.workStartDate = workStartDate;
    }

    /**
     * 获取工作开始时间
     *
     * @return work_start_time - 工作开始时间
     */
    public String getWorkStartTime() {
        return workStartTime;
    }

    /**
     * 设置工作开始时间
     *
     * @param workStartTime 工作开始时间
     */
    public void setWorkStartTime(String workStartTime) {
        this.workStartTime = workStartTime;
    }

    /**
     * 获取工作开始时间戳
     *
     * @return work_start_datestamp - 工作开始时间戳
     */
    public Date getWorkStartDatestamp() {
        return workStartDatestamp;
    }

    /**
     * 设置工作开始时间戳
     *
     * @param workStartDatestamp 工作开始时间戳
     */
    public void setWorkStartDatestamp(Date workStartDatestamp) {
        this.workStartDatestamp = workStartDatestamp;
    }

    /**
     * 获取工作结束日期
     *
     * @return work_end_date - 工作结束日期
     */
    public String getWorkEndDate() {
        return workEndDate;
    }

    /**
     * 设置工作结束日期
     *
     * @param workEndDate 工作结束日期
     */
    public void setWorkEndDate(String workEndDate) {
        this.workEndDate = workEndDate;
    }

    /**
     * 获取工作结束时间
     *
     * @return work_end_time - 工作结束时间
     */
    public String getWorkEndTime() {
        return workEndTime;
    }

    /**
     * 设置工作结束时间
     *
     * @param workEndTime 工作结束时间
     */
    public void setWorkEndTime(String workEndTime) {
        this.workEndTime = workEndTime;
    }

    /**
     * 获取工作结束时间戳
     *
     * @return work_end_datestamp - 工作结束时间戳
     */
    public Date getWorkEndDatestamp() {
        return workEndDatestamp;
    }

    /**
     * 设置工作结束时间戳
     *
     * @param workEndDatestamp 工作结束时间戳
     */
    public void setWorkEndDatestamp(Date workEndDatestamp) {
        this.workEndDatestamp = workEndDatestamp;
    }

    /**
     * 获取经度(7位小数精度1cm)
     *
     * @return longitude - 经度(7位小数精度1cm)
     */
    public BigDecimal getLongitude() {
        return longitude;
    }

    /**
     * 设置经度(7位小数精度1cm)
     *
     * @param longitude 经度(7位小数精度1cm)
     */
    public void setLongitude(BigDecimal longitude) {
        this.longitude = longitude;
    }

    /**
     * 获取纬度
     *
     * @return latitude - 纬度
     */
    public BigDecimal getLatitude() {
        return latitude;
    }

    /**
     * 设置纬度
     *
     * @param latitude 纬度
     */
    public void setLatitude(BigDecimal latitude) {
        this.latitude = latitude;
    }

    /**
     * 获取结算方式（0:日结 1:周结 2:月结 3:完工结）
     *
     * @return settlement - 结算方式（0:日结 1:周结 2:月结 3:完工结）
     */
    public Integer getSettlement() {
        return settlement;
    }

    /**
     * 设置结算方式（0:日结 1:周结 2:月结 3:完工结）
     *
     * @param settlement 结算方式（0:日结 1:周结 2:月结 3:完工结）
     */
    public void setSettlement(Integer settlement) {
        this.settlement = settlement;
    }

    /**
     * 获取薪资水平
     *
     * @return salary - 薪资水平
     */
    public Float getSalary() {
        return salary;
    }

    /**
     * 设置薪资水平
     *
     * @param salary 薪资水平
     */
    public void setSalary(Float salary) {
        this.salary = salary;
    }

    /**
     * 获取薪资类型（0:元/小时 1:元/天 2:元/件）
     *
     * @return salary_type - 薪资类型（0:元/小时 1:元/天 2:元/件）
     */
    public Integer getSalaryType() {
        return salaryType;
    }

    /**
     * 设置薪资类型（0:元/小时 1:元/天 2:元/件）
     *
     * @param salaryType 薪资类型（0:元/小时 1:元/天 2:元/件）
     */
    public void setSalaryType(Integer salaryType) {
        this.salaryType = salaryType;
    }

    /**
     * 获取工作强度
     *
     * @return work_strength - 工作强度
     */
    public Float getWorkStrength() {
        return workStrength;
    }

    /**
     * 设置工作强度
     *
     * @param workStrength 工作强度
     */
    public void setWorkStrength(Float workStrength) {
        this.workStrength = workStrength;
    }

    /**
     * 获取手续费
     *
     * @return poundage - 手续费
     */
    public Integer getPoundage() {
        return poundage;
    }

    /**
     * 设置手续费
     *
     * @param poundage 手续费
     */
    public void setPoundage(Integer poundage) {
        this.poundage = poundage;
    }

    /**
     * 获取招聘人数
     *
     * @return work_number - 招聘人数
     */
    public Integer getWorkNumber() {
        return workNumber;
    }

    /**
     * 设置招聘人数
     *
     * @param workNumber 招聘人数
     */
    public void setWorkNumber(Integer workNumber) {
        this.workNumber = workNumber;
    }

    /**
     * 获取性别要求（0:不限 1:男 2:女）
     *
     * @return work_sex - 性别要求（0:不限 1:男 2:女）
     */
    public Integer getWorkSex() {
        return workSex;
    }

    /**
     * 设置性别要求（0:不限 1:男 2:女）
     *
     * @param workSex 性别要求（0:不限 1:男 2:女）
     */
    public void setWorkSex(Integer workSex) {
        this.workSex = workSex;
    }

    /**
     * 获取年龄要求
     *
     * @return work_age - 年龄要求
     */
    public String getWorkAge() {
        return workAge;
    }

    /**
     * 设置年龄要求
     *
     * @param workAge 年龄要求
     */
    public void setWorkAge(String workAge) {
        this.workAge = workAge;
    }

    /**
     * 获取学历要求
     *
     * @return work_education - 学历要求
     */
    public String getWorkEducation() {
        return workEducation;
    }

    /**
     * 设置学历要求
     *
     * @param workEducation 学历要求
     */
    public void setWorkEducation(String workEducation) {
        this.workEducation = workEducation;
    }

    /**
     * 获取工作经验
     *
     * @return work_experience - 工作经验
     */
    public String getWorkExperience() {
        return workExperience;
    }

    /**
     * 设置工作经验
     *
     * @param workExperience 工作经验
     */
    public void setWorkExperience(String workExperience) {
        this.workExperience = workExperience;
    }

    /**
     * 获取工作图片
     *
     * @return work_img - 工作图片
     */
    public String getWorkImg() {
        return workImg;
    }

    /**
     * 设置工作图片
     *
     * @param workImg 工作图片
     */
    public void setWorkImg(String workImg) {
        this.workImg = workImg;
    }

    /**
     * 获取联系人
     *
     * @return contacts - 联系人
     */
    public String getContacts() {
        return contacts;
    }

    /**
     * 设置联系人
     *
     * @param contacts 联系人
     */
    public void setContacts(String contacts) {
        this.contacts = contacts;
    }

    /**
     * 获取手机号码
     *
     * @return phone - 手机号码
     */
    public String getPhone() {
        return phone;
    }

    /**
     * 设置手机号码
     *
     * @param phone 手机号码
     */
    public void setPhone(String phone) {
        this.phone = phone;
    }

    /**
     * 获取创建时间
     *
     * @return created - 创建时间
     */
    public Date getCreated() {
        return created;
    }

    /**
     * 设置创建时间
     *
     * @param created 创建时间
     */
    public void setCreated(Date created) {
        this.created = created;
    }

    /**
     * 获取更新时间
     *
     * @return updated - 更新时间
     */
    public Date getUpdated() {
        return updated;
    }

    /**
     * 设置更新时间
     *
     * @param updated 更新时间
     */
    public void setUpdated(Date updated) {
        this.updated = updated;
    }

    /**
     * 获取工作地点json
     *
     * @return work_place - 工作地点json
     */
    public String getWorkPlace() {
        return workPlace;
    }

    /**
     * 设置工作地点json
     *
     * @param workPlace 工作地点json
     */
    public void setWorkPlace(String workPlace) {
        this.workPlace = workPlace;
    }

    /**
     * 获取工作详情
     *
     * @return work_detail - 工作详情
     */
    public String getWorkDetail() {
        return workDetail;
    }

    /**
     * 设置工作详情
     *
     * @param workDetail 工作详情
     */
    public void setWorkDetail(String workDetail) {
        this.workDetail = workDetail;
    }

    /**
     * 获取工作福利
     *
     * @return label - 工作福利
     */
    public String getLabel() {
        return label;
    }

    /**
     * 设置工作福利
     *
     * @param label 工作福利
     */
    public void setLabel(String label) {
        this.label = label;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", userPid=").append(userPid);
        sb.append(", userEid=").append(userEid);
        sb.append(", userWid=").append(userWid);
        sb.append(", logoPic=").append(logoPic);
        sb.append(", employeeName=").append(employeeName);
        sb.append(", isEnterprise=").append(isEnterprise);
        sb.append(", workName=").append(workName);
        sb.append(", workType=").append(workType);
        sb.append(", workStartDate=").append(workStartDate);
        sb.append(", workStartTime=").append(workStartTime);
        sb.append(", workStartDatestamp=").append(workStartDatestamp);
        sb.append(", workEndDate=").append(workEndDate);
        sb.append(", workEndTime=").append(workEndTime);
        sb.append(", workEndDatestamp=").append(workEndDatestamp);
        sb.append(", longitude=").append(longitude);
        sb.append(", latitude=").append(latitude);
        sb.append(", settlement=").append(settlement);
        sb.append(", salary=").append(salary);
        sb.append(", salaryType=").append(salaryType);
        sb.append(", workStrength=").append(workStrength);
        sb.append(", poundage=").append(poundage);
        sb.append(", workNumber=").append(workNumber);
        sb.append(", workSex=").append(workSex);
        sb.append(", workAge=").append(workAge);
        sb.append(", workEducation=").append(workEducation);
        sb.append(", workExperience=").append(workExperience);
        sb.append(", workImg=").append(workImg);
        sb.append(", contacts=").append(contacts);
        sb.append(", phone=").append(phone);
        sb.append(", created=").append(created);
        sb.append(", updated=").append(updated);
        sb.append(", workPlace=").append(workPlace);
        sb.append(", workDetail=").append(workDetail);
        sb.append(", label=").append(label);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}